﻿using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential)]
public struct f
{
    public uint a;
    public IntPtr b;
    public uint c;
    public g d;
    public uint e;
    public IntPtr f;
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst=0x80)]
    public string g;
    public a h;
    public a i;
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst=0x100)]
    public string j;
    public uint k;
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst=0x40)]
    public string l;
    public l m;
    public Guid n;
    public IntPtr o;
    public static f p(IntPtr A_0)
    {
        f structure = new f();
        if (Environment.OSVersion.Version.Major >= 6)
        {
            structure.a = (uint) Marshal.SizeOf(structure);
        }
        else
        {
            structure.a = 0x1f8;
            structure.k = 10;
        }
        structure.b = A_0;
        structure.c = 0;
        structure.e = 0x400;
        structure.k = 0;
        structure.f = IntPtr.Zero;
        structure.h = a.b;
        structure.i = a.b;
        structure.d = g.c | g.b | g.a;
        structure.g = structure.j = structure.l = string.Empty;
        return structure;
    }
}

